home *** CD-ROM | disk | FTP | other *** search
/ SGI Desktop Special Edition 1.1 / SGI Desktop Special Edition 1.1.iso / dist / outbox.idb / var / www / server / addUser.sh.z / addUser.sh
Encoding:
Linux/UNIX/POSIX Shell Script  |  1995-11-13  |  3.7 KB  |  179 lines

  1. #!/bin/sh
  2.  
  3. #___________________________________________________________
  4. #
  5. #  File:    addUser
  6. #  By:      Ashmeet Sidana and Matt Ho
  7. #  Date:    7/23/95
  8. #  Purpose: Add a user to the Outbox system.
  9. #___________________________________________________________
  10. #
  11.  
  12. #
  13. # compute users login name
  14. #
  15.  
  16. UserName=`/usr/bin/whoami`
  17.  
  18. #
  19. # Set some globals
  20. #
  21.  
  22. ROOT="/var/www"
  23. DOCROOT="$ROOT/htdocs"
  24. TOGIF='/usr/sbin/togif'
  25. GREP='/sbin/grep'
  26. AWK='/usr/bin/awk'
  27. NAME=`$GREP "^$UserName:" /etc/passwd | $AWK -F: '{print $5}' | $AWK -F, '{print $1}'`
  28. if [ ! "$NAME"  ] ; then
  29.     NAME=$UserName ;
  30. fi
  31.  
  32. #
  33. # make running addUser.sh "safe" over multiple runs
  34. #
  35.  
  36. grep "<a href=\"/\~$UserName\">$UserName</a>" $DOCROOT/userList.html >/dev/null 2>&1
  37. if [ $? -eq 0 ] ; then
  38.    # User has already been added to the system file
  39.    exit
  40. fi
  41.  
  42.  
  43. #
  44. # compute hostname
  45. #
  46.  
  47. HOST=`/usr/bsd/hostname`
  48.  
  49. #_____________________________________
  50. #
  51. #    make the UserNames default home page
  52. #    along with a Public directory
  53. #_____________________________________
  54.  
  55. if test -x $HOME/public_html ; then
  56.    # nothing
  57.    echo nothing > /dev/null
  58. else 
  59.    mkdir $HOME/public_html >/dev/null 2>&1
  60.    chmod 755 $HOME/public_html 2>&1
  61. fi
  62.  
  63. if test -x $DOCROOT/$UserName ; then
  64.    # nothing
  65.    echo nothing > /dev/null
  66. else
  67.    ln -s $HOME/public_html $DOCROOT/$UserName 2> /dev/null
  68.    chown $UserName $DOCROOT/$UserName
  69.    chmod 755 $DOCROOT/$UserName
  70. fi
  71.  
  72. #
  73. # USERDOCROOT is users documents location
  74. #
  75.  
  76. USERDOCROOT=$HOME/public_html
  77.  
  78. mkdir $USERDOCROOT/Public 2> /dev/null
  79. chown $UserName $USERDOCROOT/Public
  80. chmod 755 $USERDOCROOT/Public
  81.  
  82. mkdir $USERDOCROOT/Miscellaneous 2> /dev/null
  83. chown $UserName $USERDOCROOT/Miscellaneous
  84. chmod 755 $USERDOCROOT/Miscellaneous
  85.  
  86. #_____________________________________
  87. #
  88. #    update the list of all users for
  89. #    the server
  90. #_____________________________________
  91.  
  92. FACE=$USERDOCROOT/default.gif
  93. if test -r /usr/local/lib/faces/$UserName ; then
  94.     if test -x $TOGIF ; then
  95.            $TOGIF /usr/local/lib/faces/$UserName $FACE
  96.         else 
  97.          cp $DOCROOT/default.gif $USERDOCROOT/default.gif
  98.         fi
  99. elif test -r /usr/lib/faces/$UserName ; then
  100.     if test -x $TOGIF ; then
  101.            $TOGIF /usr/lib/faces/$UserName $FACE
  102.         else 
  103.          cp $DOCROOT/default.gif $USERDOCROOT/default.gif
  104.         fi
  105. else
  106.     cp $DOCROOT/default.gif $USERDOCROOT/default.gif
  107. fi
  108.  
  109. #_____________________________________
  110. #
  111. # echo the home page.
  112. #_____________________________________
  113.  
  114. if test -f $USERDOCROOT/index.html ; then
  115.    USER_INDEX_HTML_FILE=$USERDOCROOT/index.html.N
  116. else
  117.    USER_INDEX_HTML_FILE=$USERDOCROOT/index.html
  118. fi
  119.  
  120. cat <<ENDOFTEXT > $USER_INDEX_HTML_FILE
  121. <html>
  122. <head>
  123.     <title>
  124.         Home page for $NAME
  125.     </title>
  126. </head>
  127. <body bgcolor="#42426f" text="#ffffff" link="#ffff00" vlink="#93db70" alink="#cc3232" background=/images/logo.gif>
  128. <h1 align=center>
  129.     $NAME's Home Page
  130. </h1>
  131.  
  132. <p>
  133.  
  134. <center>
  135. <P><img src=/~$UserName/default.gif align=center>
  136. <P>Send <a href="mailto:$UserName@$HOST">email to me.</a>
  137. <P>My machine is: <a href="/cgi-bin/MachineInfo/cgi-bin/wrap/$UserName/">$HOST</a>
  138. </center>
  139.  
  140. <hr size=3 width=80% noshade>
  141.  
  142. <p>
  143. Here is some content that you could customize.
  144. Note that even though this is just a boring paragraph,
  145. you could use all the powerful features of HTML
  146. including using images, fonts, lists etc.
  147.  
  148. <p>
  149. This file is:<br>
  150.  
  151. <center><code>$USERDOCROOT/index.html</code></center>
  152.  
  153. <hr size=3 width=80% noshade>
  154.  
  155. <!--#exec cmd="$ROOT/cgi-bin/wrap /$UserName" -->
  156.  
  157. </body>
  158. </html>
  159. ENDOFTEXT
  160.  
  161. cat <<ENDOFTEXT >> $DOCROOT/userList.html
  162. <tr>
  163.  
  164.         <td><img src=/~$UserName/default.gif></td>
  165.  
  166.     <th align=right>
  167.         <font size=+2>
  168.         <a href="/~$UserName">$UserName</a>
  169.         </font>
  170.     </th>
  171.  
  172.     <td>
  173.         <li>
  174.     </td>
  175.  
  176.     <td><font size=+2><a href="/~$UserName">$NAME</a></font></td>
  177. </tr>
  178. ENDOFTEXT
  179.